package com.study.goal.service;


import com.study.common.core.domain.PageQuery;
import com.study.common.core.page.TableDataInfo;
import com.study.goal.domain.bo.PlanBo;
import com.study.goal.domain.vo.PlanVo;

import java.util.Collection;
import java.util.List;

/**
 * 学习计划Service接口
 *
 * @author MT
 * @date 2025-09-03
 */
public interface IPlanService {

    /**
     * 查询学习计划详情
     * @param id
     * @return
     */
    PlanVo queryById(Long id);

    /**
     * 分页查询学习计划列表
     * @param bo
     * @param pageQuery
     * @return
     */
    TableDataInfo<PlanVo> queryPageList(PlanBo bo, PageQuery pageQuery);

    /**
     * 分页查询学习计划列表
     * @param userId
     * @param pageQuery
     * @return
     */
    TableDataInfo<PlanVo> queryPageListById(Long userId, PageQuery pageQuery);


    /**
     * 新增学习计划
     * @param bo
     * @return
     */
    Boolean insertByBo(PlanBo bo);

    /**
     * 修改学习计划
     * @param bo
     * @return
     */
    Boolean updateByBo(PlanBo bo);

    Boolean deleteWithValidById(Long id, Boolean isValid);
}
